package com.jcfk.eam.domain.dto.base;

import com.jcfk.eam.domain.dto.main.EamInspectionPlanPersonDTO;
import com.jcfk.eam.domain.dto.main.EamRepairOrderPartDTO;
import com.jcfk.eam.domain.dto.main.EamRepairOrderPersonDTO;
import com.jcfk.system.domain.dto.BaseDTO;
import lombok.Data;
import org.hibernate.validator.constraints.Length;

import java.util.Date;
import java.util.List;

/**
 * 计划修工单
 *
 * @author yrl
 * @email
 * @date 2024-12-10
 */
@Data
public class EamPlanRepairOrderDTO extends BaseDTO {

    private static final long serialVersionUID = 1L;

    /**
     * 数据版本号
     */
    private Long version;

    /**
     * 计划主键
     */
    @Length(max = 32, message = "计划主键长度不能超过32")
    private String planId;

    /**
     * 计划明细主键
     */
    @Length(max = 32, message = "计划明细主键长度不能超过32")
    private String planDetailId;

    /**
     * 工单编号
     */
    @Length(max = 32, message = "工单编号长度不能超过32")
    private String orderNo;

    /**
     * 计划开始时间
     */
    private Date planStartTime;

    /**
     * 维修开始时间
     */
    private Date repairStartTime;

    /**
     * 维修结束时间
     */
    private Date repairEndTime;

    /**
     * 维修用时
     */
    @Length(max = 32, message = "维修用时长度不能超过32")
    private String repairUseTime;

    /**
     * 维修类型
     */
    @Length(max = 10, message = "维修类型长度不能超过10")
    private String repairType;

    /**
     * 维修情况说明
     */
    @Length(max = 255, message = "维修情况说明长度不能超过255")
    private String repairSituation;

    /**
     * 检修中发现的其他问题
     */
    @Length(max = 255, message = "检修中发现的其他问题长度不能超过255")
    private String otherProblem;

    /**
     * 维修执行班组主键
     */
    @Length(max = 32, message = "维修执行班组主键长度不能超过32")
    private String executeTeamId;

    /**
     * 维修执行班组
     */
    @Length(max = 50, message = "维修执行班组长度不能超过50")
    private String executeTeamName;

    /**
     * 主修人主键
     */
    @Length(max = 32, message = "主修人主键长度不能超过32")
    private String repairUserId;

    /**
     * 主修人姓名
     */
    @Length(max = 50, message = "主修人姓名长度不能超过50")
    private String repairUserName;

    /**
     * 工单状态
     */
    private Integer orderStatus;

    /**
     * 备注
     */
    @Length(max = 255, message = "备注长度不能超过255")
    private String remarks;

    /**
     * 创建人名
     */
    @Length(max = 50, message = "创建人名长度不能超过50")
    private String createdUserName;

    /**
     * 更新人名
     */
    @Length(max = 50, message = "更新人名长度不能超过50")
    private String lastUpdatedUserName;

    /**
     * 是否删除
     */
    private Integer deleted;

    /**
     * 批量删除id
     */
    private List<String> ids;
    /**
     * 计划编码
     */
    private String planCode;
    /**
     * 计划名称
     */
    private String planName;
    /**
     * 资产编码
     */
    private String assetCode;
    /**
     * 资产名称
     */
    private String assetName;
    /**
     * 资产类型编码
     */
    private String assetTypeCode;
    /**
     * 资产类型名称
     */
    private String assetTypeName;
    /**
     * 维修内容
     */
    private String repairContent;
    /**
     * 位置
     */
    private String locationName;

    /**
     * 维修人员
     */
    private List<EamInspectionPlanPersonDTO> executeUsers;

    /**
     * 参与维修人员
     */
    private List<EamRepairOrderPersonDTO> repairOrderPersons;

    /**
     * 备件
     */
    private List<EamRepairOrderPartDTO> parts;

    /**
     * 维修前文件
     */
    private List<EamRepairOrderFileDTO> fixBeforeFiles;

    /**
     * 维修后文件
     */
    private List<EamRepairOrderFileDTO> fixAfterFiles;

    /**
     * 模具图片
     */
    private List<EamRepairPlanDetailImgDTO> images;
    /**
     * 模具类型定期维护项
     */
    private List<EamRepairPlanDetailContentDTO> types;
}
